#!/bin/bash

# 停止所有微前端应用的脚本

echo "🛑 停止微前端应用..."

# 读取并终止进程
if [ -f "logs/main-app.pid" ]; then
    MAIN_PID=$(cat logs/main-app.pid)
    if kill -0 $MAIN_PID 2>/dev/null; then
        kill $MAIN_PID
        echo "✅ 主应用已停止 (PID: $MAIN_PID)"
    else
        echo "⚠️  主应用进程不存在或已停止"
    fi
    rm -f logs/main-app.pid
fi

if [ -f "logs/child-a.pid" ]; then
    CHILD_A_PID=$(cat logs/child-a.pid)
    if kill -0 $CHILD_A_PID 2>/dev/null; then
        kill $CHILD_A_PID
        echo "✅ 子应用 A 已停止 (PID: $CHILD_A_PID)"
    else
        echo "⚠️  子应用 A 进程不存在或已停止"
    fi
    rm -f logs/child-a.pid
fi

if [ -f "logs/child-b.pid" ]; then
    CHILD_B_PID=$(cat logs/child-b.pid)
    if kill -0 $CHILD_B_PID 2>/dev/null; then
        kill $CHILD_B_PID
        echo "✅ 子应用 B 已停止 (PID: $CHILD_B_PID)"
    else
        echo "⚠️  子应用 B 进程不存在或已停止"
    fi
    rm -f logs/child-b.pid
fi

# 强制终止可能残留的 node 进程（可选）
echo "🔍 检查残留进程..."
pkill -f "vite.*3000" 2>/dev/null && echo "✅ 清理端口 3000 上的残留进程"
pkill -f "vite.*3001" 2>/dev/null && echo "✅ 清理端口 3001 上的残留进程"  
pkill -f "vite.*3002" 2>/dev/null && echo "✅ 清理端口 3002 上的残留进程"

echo ""
echo "🎉 所有微前端应用已停止！"